package com.cskaoyan.javase.oop1._13block._3sumup;

/**
 * 总结一下代码块
 * 构造代码块和静态代码块：
 *      1.它们最终的用途都是赋值。
 *      2.构造代码块在创建对象时，给成员变量赋值。可以把构造代码块
 *          看成是一个在new对象过程中，自动被调用的成员方法。
 *      3.静态代码块在类加载时，给静态成员变量赋值。可以把静态代码块
 *            看成是一个类加载过程中，自动被调用的静态成员方法。
 *
 *      4.代码块内部的位置属于局部位置，定义的变量不是局部变量。
 *      5.一般来说，某个类的静态代码块总是先于构造代码块执行。
 *
 *
 * @since 09:49
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        new A();
    }
}

class A {
    int num;

    {
        num = 100;
        int num2;
    }

    static int staticNum;
    static {
        staticNum = 200;
        // System.out.println(num);
        int num2;
        System.out.println("hello world!");
    }
}